package org.lq.dlz.dao;

import java.util.List;

import org.lq.dlz.common.Const;
import org.lq.dlz.common.Page;
import org.lq.dlz.entity.Product;
import org.lq.dlz.query.ProductQuery;

/**
 * 
 * @author 于通
 * @date   2019年9月4日
*
 */
public interface ProductDao {
	/**
	 * 添加商品
	 * @param product
	 * @return
	 */
	public int addProduct(Product product);
	/**
	 * 修改商品
	 * @param product
	 * @return
	 */
	public int updateProduct(Product product);
	
	/**
	 * 删除商品
	 * @param id
	 * @return
	 */
	public int deleteProduct(int id);
	/**
	 * 根据id获取商品对象
	 * @param id
	 * @return
	 */
	public Product getProductById(int id);
	
	/**
	 * 分页查询
	 */
	public List<Product> findPage(Page<Product> page);
	
	/**
	 * 通过商品分类id查询商品
	 * @param cid
	 * @return
	 */
	public List<Product> getProductByCategoryId(int cid,Page<Product> page);
	/**
	 * 查询总数
	 */
	public int totalCount();
	
	
	
	/**
	 * 分页查询商品信息
	 * @param page
	 * @return
	 */
	public List<Product> findPage(Page<Product> page,ProductQuery query);
	/**
	 * 查询总数
	 */
	public int totalCount(ProductQuery query);
	/**
	 * 修改商品状态
	 * @param id
	 * @param status
	 * @return
	 */
	public int updateStatus(int id,int status);
	
	/**
	 * 热销商品展示
	 * @param enum1
	 * @return
	 */
	public List<Product> getHOTProduct(Const.ProductStatusEnum enum1);
	/**
	 * 通过分类id获取商品
	 * @param page
	 * @param query
	 */
	public void findProductByCid(Page<Product> page, ProductQuery query);
	
	/**
	 * 查找购物车商品
	 * @param id
	 * @return
	 */
	public List<Product> findCartProduct(int... id);
	/**
	 * 修改库存数量
	 * @param pid
	 * @param stock
	 * @return
	 */
	public int updateStock(int pid,int stock);
	
	
}
